package basics.day15.stringDemo;

public class StringDemo {
    public static void main(String[] args) {
        // byteToString();
        stringArrToString();
    }

    /*
     *  定义方法,String类的构造方法
     *  String(byte[] bytes)  传递字节数组
     *  字节数组转成字符串
     *  通过使用平台的默认字符集解码指定的 byte 数组，构造一个新的 String。
     *  平台 : 机器操作系统
     *  默认字符集: 操作系统中的默认编码表, 默认编码表GBK
     *  将字节数组中的每个字节,查询了编码表,得到的结果
     *  字节是负数,汉字的字节编码就是负数, 默认编码表 ,一个汉字采用2个字节表示
     *
     *  String(byte[] bytes, int offset, int length) 传递字节数组
     *  字节数组的一部分转成字符串
     *  offset 数组的起始的索引
     *  length 个数,转几个   , 不是结束的索引
     */
    public static void byteToString() {
        byte[] b = {97, 98, 99, 100};
        String s = new String(b);
        System.out.println(s);
        byte[] b1 = {-97, -98, -99, -100};
        String s1 = new String(b1);
        System.out.println(s1);
    }

    public static void stringArrToString() {
        /*
        String(char[] value)
        分配一个新的 String，它代表了目前包含在字符数组参数字符序列。
         */
        char[] c = {'a', 'b', 'c', '1', 1};
        String s = new String(c);
        System.out.println(s); // abc1
        /*
        String(char[] value, int offset, int count)
        分配一个包含字符与字符数组数组参数的新 String。
         */
        String s1 = new String(c,2,2);
        System.out.println(s1); // c1
    }
}
